Many types of application software are in use. Some examples of applications include enterprise software such as financial systems, customer relationship management, and supply chain management software; infrastructure software such as databases, SQL query editors, email servers, and systems for managing networks and security; information worker software such as time management software, word processors, email and blog clients, spreadsheets, and collaboration tools; content access software such as media players and web browsers; educational software; simulations software; software development tools; media development tools such as graphic arts software, desktop publishing software, multimedia development software, HTML editors, digital animation editors, digital audio and video composition software; product development software such as computer-aided design tools; and many others. Although a distinction may be made between applications and operating systems based on how directly software controls hardware, in some situations operating system code may be used in much the same way as word processor, calculator, image renderer, or other application software. When using applications, users often work in multiple database, product, customer, project, or other contexts. A given user may have tens or even hundreds of different contexts which are viewed, edited, and/or otherwise manipulated during operation of a given application.